---
order: 1
title: 主模块
type: 图形
group: 粒子
label: Graphics/Particle
---

[MainModule](/apis/core/#MainModule) 是 `ParticleGeneratorModule` 的主模块，包含了最基本的粒子生成参数。这些属性大多用于控制新创建的粒子的初始状态。

<Image src="https://mdn.alipayobjects.com/huamei_qbugvr/afts/img/A*JUjgTLfiz7kAAAAAAAAAAAAADtKFAQ/original" alt="avatar" style={{ zoom: "50%" }} />

## 属性

你可以在提供的示例中逐个调试各项属性，帮助你更好地理解和掌控粒子住模块，从而实现各种复杂和精美的视觉效果。

| 属性 | 释义 |
| :--- | :--- |
| [duration](/apis/core/#MainModule-duration) | 持续时间。决定了粒子生成器运行多长时间，单位为秒。更长的持续时间意味着粒子系统会生成更多的粒子，创造出持续的效果 |
| [isLoop](/apis/core/#MainModule-isLoop) | 是否循环。如果设置为 true，粒子生成器会在持续时间结束后自动重新开始，从而形成一个连续的效果，比如烟雾或流水 |
| [startDelay](/apis/core/#MainModule-startDelay) | 开始延迟时间。决定了粒子生成器在启动后延迟一定时间才开始发射，这对于实现如烟花等需要时间差的效果非常有用 |
| [startLifetime](/apis/core/#MainModule-startLifetime) | 初始生命周期。决定了每个粒子在消失前能存活多久。更长的生命周期意味着粒子会在屏幕上停留更长时间 |
| [startSpeed](/apis/core/#MainModule-startSpeed) | 首次生成粒子时的初始速度。决定了粒子发射时的速度，较高的初始速度会使粒子迅速扩散，如爆炸效果；较低的速度则会使粒子缓慢飘动，如烟雾效果 |
| [startSize3D](/apis/core/#MainModule-startSize3D) | 是否以每个轴的粒子大小分别指定。允许为粒子的 x、y、z 轴设置不同的大小，以实现各向异性的粒子效果，比如长条形火焰 |
| [startSize](/apis/core/#MainModule-startSize) | 粒子生成器首次生成粒子时的初始大小。控制每个粒子的大小，较大的初始大小适合模拟大块的烟云或火焰，较小的则适合细腻的尘土或水花 |
| [startSizeX](/apis/core/#MainModule-startSizeX) | 粒子生成器首次生成粒子时沿 x 轴的初始大小 |
| [startSizeY](/apis/core/#MainModule-startSizeY) | 粒子生成器首次生成粒子时沿 y 轴的初始大小 |
| [startSizeZ](/apis/core/#MainModule-startSizeZ) | 粒子生成器首次生成粒子时沿 z 轴的初始大小 |
| [startRotation3D](/apis/core/#MainModule-startRotation3D) | 是否启用 3D 粒子旋转。允许粒子在 3D 空间中旋转，增加粒子的立体感和复杂性，如在三维空间内下坠的树叶 |
| [startRotation](/apis/core/#MainModule-startRotation) | 粒子生成器首次生成粒子时的初始旋转。设置粒子发射时的旋转角度，适用于需要粒子朝特定方向运动的效果，如方向性的火焰 |
| [startRotationX](/apis/core/#MainModule-startRotationX) | 粒子发射时沿 x 轴的初始旋转 |
| [startRotationY](/apis/core/#MainModule-startRotationY) | 粒子发射时沿 y 轴的初始旋转 |
| [startRotationZ](/apis/core/#MainModule-startRotationZ) | 粒子发射时沿 z 轴的初始旋转 |
| [flipRotation](/apis/core/#MainModule-flipRotation) | 翻转旋转。范围在 0 到 1 之间，使部分粒子以相反方向旋转，增加粒子系统的随机性和自然感，适用于模拟复杂的运动轨迹 |
| [startColor](/apis/core/#MainModule-startColor) | 初始颜色。决定了粒子的颜色，可用于模拟不同材质的效果，如火焰的红橙色或烟雾的灰白色 |
| [gravityModifier](/apis/core/#MainModule-gravityModifier) | 重力修正。调整粒子受重力影响的程度，使粒子看起来更真实，如下降的雨滴或上升的烟雾 |
| [simulationSpace](/apis/core/#MainModule-simulationSpace) | 选择模拟粒子的空间。决定了粒子是相对于世界还是相对于生成器自身运动。世界空间适合固定位置的效果，如烟雾；本地空间适合随对象移动的效果，如火焰尾迹 |
| [simulationSpeed](/apis/core/#MainModule-simulationSpeed) | 模拟速度。可整体加快或减慢粒子的运动速度，适用于时间慢动作或加速效果 |
| [scalingMode](/apis/core/#MainModule-scalingMode) | 缩放模式。决定了粒子生成器在发射粒子时，如何处理位置、旋转和缩放等变换操作。使用 scalingMode 能确保粒子生成器和粒子之间的变换关系符合预期 |
| [playOnEnabled](/apis/core/#MainModule-playOnEnabled) | 如果设置为 true，粒子生成器将在启动时自动开始播放。开启这个选项会确保粒子系统一启动就开始发射粒子，适用于需要立即显示效果的场景 |
| [maxParticles](/apis/core/#MainModule-maxParticles) | 最大粒子数。限制了粒子系统的最大粒子数，以防止性能问题。较大的值适用于需要大量粒子的效果，如浓烟 |

### scalingMode 模式说明

scalingMode 有以下几种模式：

- **Local**：粒子会继承粒子生成器的局部变换，即粒子的变换是在生成器的本地坐标系中进行的
- **World**：粒子会继承粒子生成器的全局变换，即粒子的变换是在世界坐标系中进行的
- **Hierarchy**：粒子会继承整个变换层级中的变换，即粒子会考虑到生成器的父级及更上级的变换
